package main.java.com.pzhu.algorithm;


import java.util.Date;

/**
 * LeetCode 125. 验证回文串
 * 如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后，短语正着读和反着读都一样。则可以认为该短语是一个回文串 。
 * <p>
 * 字母和数字都属于字母数字字符。
 * <p>
 * 给你一个字符串 s，如果它是 回文串 ，返回 true ；否则，返回 false 。
 *
 * @author rediaz
 * @date 2024-05-19
 */

public class _004isPalindrome {
    public static boolean isPalindrome(String s) {
        String lowerCase = s.replaceAll("[^0-9a-zA-Z]", "").toLowerCase();
        StringBuilder stringBuilder = new StringBuilder(s.replaceAll("[^0-9a-zA-Z]", "").toLowerCase());
        StringBuilder reverse = stringBuilder.reverse();
        return (reverse.toString()).equals(lowerCase);
        // 简写:
        //return s.replaceAll("[^0-9a-zA-Z]", "").toLowerCase().equals(new StringBuilder(s.replaceAll("[^0-9a-zA-Z]", "").toLowerCase()).reverse().toString());
    }

    public static void main(String[] args) {
        System.out.println();
        System.out.println(isPalindrome("A man, a plan, a canal: Panama"));
        System.out.println(isPalindrome("race a car"));
    }
}
